home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / genie-commodore-file-library / C64-128Toolkit / MSD-DU12.ARC / BASIC ON DISK 2 < prev    next >
Encoding:
Text File  |  2019-04-13  |  4.6 KB  |  50 lines

  1. ╘O TEST THESE RECOVERY METHODS, A SHORT BASIC PROGRAM, ─IR (FROM THE 1541 ─EMONSTRATION ─ISK) WAS COPIED TO A NEW, FRESHLY FORMATED DISK.  ╘HE PROGRAM WAS FOUND LOCATED IN BLOCKS 17,00; 17,10; 17,20; AND 17,8.  ┼RROR 23 WAS INTRODUCED IN BLOCK 17,10 USING ╒LTRACOPY.  ┴TTEMPTS TO LOAD THE PROGRAM RESULTED IN A FLASHING DISK ERROR LIGHT WITHOUT RETURN OF CONTROL TO THE ├-64.
  2.  
  3. ╘HREE COPIES OF THE DISK WERE MADE.  ╧N THE FIRST DISK THE DIRECTORY POINTER WAS CHANGED TO POINT TO BLOCK 17,20.  ╧N THE SECOND, THE BLOCK POINTER IN BLOCK 17,00 WAS CHANGED TO POINT TO BLOCK 17,20.  ╧N THE THIRD DISK THE BLOCK POINTER IN BLOCK 17,00 WAS CHANGED TO 00,255.  ┴LL OF THE CHANGES WERE MADE USING ╘HE ├LONE ═ACHINE.
  4.  
  5. ┴LL THREE DISKS PRODUCED PROGRAM SEQUENCES WHICH COULD BE LOADED INTO MEMORY, LISTED AND EDITED AS A NORMAL BASIC PROGRAM.  ╘HE ├-64, THEREFORE, SEEMS VERY FORGIVING.  ╘HERE WAS NO NEED TO WORRY ABOUT THE MEMORY POINTERS, THE BASIC LINE NUMBER OF THE FIRST LINE, OR THE $00 $00 $00 SEQUENCE AT THE END OF BASIC PROGRAMS.  ╘HE SYSTEM APPEARS TO CORRECT ANY OF THESE DEFICIENCIES.
  6.  
  7. ╘HE TECHNIQUES DESCRIBED ARE RISKY AND CAN BE TIME CONSUMING.  ╧BVIOUSLY THEY SHOULD BE USED ONLY IN AN EMERGENCY AND WITH A LONG PROGRAM WHICH CANNOT BE REPLACED EASILY.  ╙IMILARLY, PROGRAMS REQUIRING WEEKS OR MONTHS TO REPLACE SHOULD BE BACKED-UP FREQUENTLY.
  8.  
  9. ─╔╙╨╠┴┘ ┬┴╙╔├.  ╧NE OF THE PROBLEMS IN USING ─ISPLAY ╘&╙ TO INSPECT BASIC PROGRAMS ON DISK IS CAUSED BY THE TOKENS.  ─ISPLAY ╘&╙ DOES A GOOD JOB OF DISPLAYING THE CONTENTS OF A BLOCK IN HEXIDECIMAL AND THE CORRESPONDING ┴╙├╔╔ CHARACTERS.  ╒NFORTUNATELY, THE ┴╙├╔╔ OF MOST BASIC TOKENS IS A GRAPHICS CHARACTER.  ╘HIS CAN MAKE IT DIFFICULT TO FOLLOW A BASIC PROGRAM ON DISK--DEPENDING ON HOW MANY ┴╙├╔╔ CHARACTERS ARE PRESENT IN THE PROGRAM.
  10.  
  11. ╔T PROVED STRAIGHT FORWARD TO INCORPORATE BASIC TOKENS INTO ─ISPLAY ╘&╙, SO MOST OF A BASIC PROGRAM CAN BE DISPLAYED DIRECTLY FROM DISK.  ╘HIS MODIFIED PROGRAM IS CALLED ─ISPLAY ┬ASIC.  ╘HE PROGRAM ALSO CALCULATES AND DISPLAYS THE DECIMAL VALUE OF THE BLOCK POINTERS, THE DECIMAL VALUE OF THE MEMORY LINE POINTERS AND THE DECIMAL VALUE OF THE BASIC LINE NUMBERS.  ─ISPLAY ┬ASIC IS, THEREFORE, A REASONABLE APPROXIMATION OF A BASIC MONITOR FOR DISK.  ┴ CORRESPONDING BASIC MONITOR FOR MEMORY SEEMS NOT TO BE AVAILABLE.
  12. ║2=92
  13.  
  14. ┴ TYPICAL PRINTOUT LINE FROM ─ISPLAY ┬ASIC IS:
  15.  
  16. ║AI+0
  17. ┼0 :2┴ 00 ┼9 0├ 90 01 98 31 35 2├ 22 42 2─ 50 3┴ 32
  18. »  :* ^2 3305 400 ╨╥╔╬╘#15,"┬-╨:2
  19.  
  20. IN WHICH "^2" IS USED AS A SYMBOL FOR THE DECIMAL VALUE OF THE MEMORY LINE POINTER.  ╘HE HEX VALUE, $0├┼9, IS SHOWN IMMEDIATELY ABOVE IT.
  21. ║AI+5
  22.  
  23. ─ISPLAY ┬ASIC IS BEING CONTRIBUTED FOR INCLUSION ON ╨ROGRAMS 1.
  24.  
  25. ╨╥╧╟╥┴═ ═╧─╔╞╔├┴╘╔╧╬.  ╧NE USE OF BASIC TOKENS IS THE MODIFICATION OF PROGRAMS DURING EXECUTION.  ╨OKING THE CORRECT VALUE INTO A MEMORY LOCATION CAN REDIRECT CONTROL AS NEEDED.  ═ANY USES ARE POSSIBLE FOR THIS TYPE OF PROGRAMMING.  ╘HE REDIRECTED ╟╧╘╧ IS ONE EXAMPLE.
  26.  
  27. ├-64 BASIC DOES NOT ALLOW THE USE OF A VARIABLE AS A LINE NUMBER REFERENCE.  ╔T IS NOT DIFFICULT TO SEE WHY, SINCE THE VALUE OF THE VARIABLE IS BINARY, WHILE THE REQUIRED LINE NUMBER REFERENCE IS IN ┴╙├╔╔.
  28.  
  29. ╘HE METHOD DESCRIBED HERE IS HANDY WHEN A LINE NUMBER OBJECT IS CALCULATED ACCORDING TO SOME OTHER PROGRAM CONDITION.  ╔N BASIC PROGRAMMING THIS PROBLEM IS USUALLY HANDLED WITH EITHER ╧╬ ╟╧╘╧ OR ╧╬ ╟╧╙╒┬ ROUTINES.  ╚OWEVER, THIS CAN BE COMPLEX ESPECIALLY IF THE OBJECT LINE NUMBER LIST WILL NOT FIT ON A SINGLE LINE.
  30.  
  31. ┴ TYPICAL EXAMPLE OF THE USE OF A ╨╧╦┼ TO MODIFY AN EXECUTING PROGRAM IS:
  32.  
  33. 10 ╨╥╔╬╘,"╠╔╬┼ 10"
  34. 20 ╞╧╥ ╪=0 ╘╧ 10
  35. 30 ┘=2139+╪
  36. 40 ╔╞ (╨┼┼╦ (┘))=49 ╘╚┼╬ ┌=┘
  37. 50 ╬┼╪╘
  38. 60 ╨╧╦┼ ┌,56
  39. 70 ╟╧╘╧ 10
  40. 80 ┼╬─
  41.  
  42. ╘HIS PROGRAM APPEARS TO CREATE AN INFINITE LOOP WITH LINE 10 EXECUTING REPEATEDLY.  ╚OWEVER, THE ╨╧╦┼ IN LINE 60 CHANGES THE ╟╧╘╧ 10 IN LINE 70 TO ╟╧╘╧ 80.  ╘HEREFORE, THE PROGRAM ENDS AFTER ONE EXECUTION.  ╘HE SAME TECHNIQUE COULD HAVE CHANGED ANY OF THE BASIC TOKENS IN THE LOOP TO $80 (DECIMAL 128) FOR ┼╬─.
  43.  
  44. ┴ PROBLEM WITH THE METHOD IS THAT THE REQUIRED ╨╧╦┼ ADDRESS CHANGES WITH ANY PROGRAM EDITING THAT CHANGES THE BYTE COUNT PRIOR TO THE DESIRED ╨╧╦┼ LOCATION.  ╚ENCE, THE ╞╧╥ ╬┼╪╘ ╨┼┼╦ ROUTINE IS INCORPORATED TO FIND THE CORRECT ADDRESS FOR THE CHANGE WHILE PERMITTING SOME EDITING FLEXIBILITY.
  45.  
  46. ╘HIS PROGRAM MODIFICATION TECHNIQUE IS QUITE VERSATILE.  ╔T CAN BE USED AS PART OF A PROTECTION SCHEME TO OBSCURE THE NATURE OR FUNCTION OF A ROUTINE PRIOR TO EXECUTION--OR EVEN TO FURTHER OBSCURE IT AFTER EXECUTION.
  47.  
  48. ┬ASIC TOKENS IS A BROAD SUBJECT.  ╙OME OF THEIR USES HAVE BEEN DESCRIBED HERE.  ═ANY OTHERS ARE POSSIBLE.  ╚OPEFULLY, THIS INFORMATION WILL ENLIGHTEN THE READER TO SOME ADDITIONAL PROGRAMMING POSSIBILITIES.
  49.  
  50.